package com.bysj.sausys.service;

import com.bysj.sausys.beans.PageQuery;
import com.bysj.sausys.beans.PageResult;
import com.bysj.sausys.beans.SubmitTaskBean;
import com.bysj.sausys.model.SysAssAct;

import java.util.Map;

/**
 * 社团活动申请Service接口
 *
 * @author WangZK
 */
public interface ISysAssActService {

    /**
     * 保存社团活动申请单
     *
     * @param sysAssAct
     * @param username
     * @param assId
     */
    void save(SysAssAct sysAssAct, String username, Integer assId);

    /**
     * 更新社团活动申请单
     *
     * @param sysAssAct
     * @param username
     * @param assId
     */
    void update(SysAssAct sysAssAct, String username, Integer assId);

    /**
     * 根据id获取社团活动申请单
     *
     * @param id
     * @return
     */
    SysAssAct findById(Integer id);

    /**
     * 分页获取社团活动申请单
     *
     * @param pageQuery
     * @param map
     * @return
     */
    PageResult<SysAssAct> getPage(PageQuery pageQuery, Map map);

    /**
     * 根据id删除社团活动申请单
     *
     * @param id
     */
    void delete(Integer id);

    /**
     * 启动社团活动申请审批流程
     *
     * @param id
     * @param currentUsername
     */
    void saveStartProcess(Integer id, String currentUsername);

    /**
     * 获取审批信息
     *
     * @param taskId
     * @return
     */
    Map getAuditInfo(String taskId);

    /**
     * 获取历史的审批信息
     *
     * @param id
     * @return
     */
    Map getHisComment(Integer id);

    /**
     * 提交任务
     *
     * @param submitTaskBean
     * @param username
     */
    void saveSubmitTask(SubmitTaskBean submitTaskBean, String username);

    /**
     * 修改社团活动申请单的状态
     *
     * @param map
     */
    void updateStatus(Map map);
}
